#include <stdio.h>

void fun()
{
    printf("hello\n");
    fun();
}

void fun2(int n)
{
    printf("%d\n",n);
    if(n>1)//循环条件
    {
        fun2(n-1);//循环变量的变更
    }
}

long fun3(int n)//求n的阶乘
{
    if(n==0)
    {
        return 1;
    }
    return n*fun3(n-1);//循环条件变更
}

//求斐波那契数列的第n项
long fun4(int n)
{
    if(n==0||n==1)
    {
        return n;
    }
    return fun4(n-1)+fun4(n-2);
}

long fun5(int n)
{
    if(n==10)
    {
        return 1;
    }
    return (fun5(n+1)+1)*2;
}

int main(void)
{
    //fun2(6);
    //printf("%ld\n",fun3(4));
    //printf("%ld\n",fun4(5));
    printf("%ld\n",fun5(1));
    return 0;
}